def seven_clap_game(max_number=100):
    """
    逢七拍手游戏核心逻辑
    :param max_number: 游戏最大数字（默认100）
    """
    print("🎮 逢七拍手游戏开始！🎮")
    print("规则：数字包含7或能被7整除时，拍手（输出'👏'），否则输出数字\n")
    
    for num in range(1, max_number + 1):
        # 条件：能被7整除 或 数字中包含7
        if num % 7 == 0 or '7' in str(num):
            print(f"{num:3d}: 👏")  # 格式化输出，数字占3位对齐
        else:
            print(f"{num:3d}: {num}")
        
        # 每10个数字换行，提升可读性
        if num % 10 == 0:
            print()

def main():
    """游戏入口函数，处理用户交互"""
    print("欢迎来到逢七拍手游戏！")
    
    # 获取用户输入的最大数字（支持默认值）
    while True:
        user_input = input("请输入游戏结束的最大数字（默认100，直接回车使用默认值）：")
        if not user_input:  # 用户直接回车，使用默认值
            max_num = 100
            break
        try:
            max_num = int(user_input)
            if max_num > 0:  # 确保输入为正整数
                break
            else:
                print("❌ 请输入大于0的整数！")
        except ValueError:
            print("❌ 输入无效，请输入一个整数！")
    
    # 开始游戏
    seven_clap_game(max_num)
    
    # 询问是否重新开始
    while True:
        restart = input("是否要重新玩一次？（y/n）：").strip().lower()
        if restart == 'y':
            main()  # 重新调用入口函数
            break
        elif restart == 'n':
            print("👋 感谢游玩，下次再见！")
            break
        else:
            print("❌ 输入无效，请输入 y 或 n！")

# 程序入口
if __name__ == "__main__":
    main()